#ifndef	WLL_SINGLETON_H
#define WLL_SINGLETON_H

template <typename TYPE> 
TYPE* GetInstance()
{
    //在调用的时候再初始化（延迟初始化），在程序退出时自动析构
	static TYPE instance;
	return &instance;
}

template <typename TYPE>
class Singleton
{
public:
	static TYPE* GetInstance()
	{
		return ::GetInstance<TYPE>();
	}
};

#endif

